/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package service;

import beans.SobreCosto;
import dao.Conexion;
import dao.ReporteDAO;
import java.sql.SQLException;
import request.ReporteCombustibleRequest;
import request.ReporteEstadoPedidoRequest;
import request.ReporteHoraExtraRequest;
import request.ReporteIncidenciaRequest;
import request.ReporteZonasRequest;
import request.SobreCostoRequest;
import response.ReporteCombustibleResponse;
import response.ReporteEstadoPedidoResponse;
import response.ReporteHoraExtraResponse;
import response.ReporteIncidenciaResponse;
import response.ReporteZonaResponse;

/**
 *
 * @author a20080424
 */
public class ReporteService {
    private static ReporteDAO reporteDAO = new ReporteDAO();
    private static Conexion conexion = new Conexion();
    public ReporteZonaResponse reporteZonas(ReporteZonasRequest reporte) throws SQLException, InstantiationException, IllegalAccessException, ClassNotFoundException {
        ReporteZonaResponse reporteZona = new ReporteZonaResponse();
        try{
            conexion.abrirConexion();
            reporteDAO.setConexion(conexion);
            reporteZona = reporteDAO.reporteZonas(reporte);
            conexion.cerrarConexion();
        }
        catch(SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e){
            System.out.println("Error en la base de datos reporte Zonas" + e.toString());
        }
        finally{
            try{
                conexion.cerrarConexion();
            }
            catch (SQLException e2){
                System.out.println("Cerramos: " + e2.toString());
            }
        }
        return reporteZona;
    }

    public ReporteHoraExtraResponse reporteHorasExtras(ReporteHoraExtraRequest reporte) {
        ReporteHoraExtraResponse reporteHoraExtra = new ReporteHoraExtraResponse();
        try{
            conexion.abrirConexion();
            reporteDAO.setConexion(conexion);
            reporteHoraExtra = reporteDAO.reporteHorasExtras(reporte);
            conexion.cerrarConexion();
        }
        catch (SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e){
            System.out.println("Error en la base de datos reporte Hora Extra" + e.toString());
        }
        finally{
            try{
                conexion.cerrarConexion();
            }
            catch (SQLException e2){
                System.out.println("Cerramos: " + e2.toString());
            }
        }
        return reporteHoraExtra;
    }

    public ReporteEstadoPedidoResponse reporteEstadoPedidos(ReporteEstadoPedidoRequest reporte) {
        ReporteEstadoPedidoResponse reporteEstadoPedido = new ReporteEstadoPedidoResponse();
        try{
            conexion.abrirConexion();
            reporteDAO.setConexion(conexion);
            reporteEstadoPedido = reporteDAO.reporteEstadoPedido(reporte);
            conexion.cerrarConexion();
        }   
        catch (SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e){
            System.out.println("Error en la base de datos reporte Hora Extra" + e.toString());
        }
        finally{
            try{
                conexion.cerrarConexion();
            }
            catch (SQLException e2){
                System.out.println("Cerramos: " + e2.toString());
            }
        }
        return reporteEstadoPedido;
    }

    public SobreCosto reporteSobreCosto(SobreCostoRequest reporte) {
        SobreCosto  sobreCosto = new SobreCosto();
        
        try{
            conexion.abrirConexion();
            reporteDAO.setConexion(conexion);
            sobreCosto = reporteDAO.reporteSobreCosto(reporte);
            conexion.cerrarConexion();
        }   
        catch (SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e){
            System.out.println("Error en la base de datos reporte Hora Extra" + e.toString());
        }
        finally{
            try{
                conexion.cerrarConexion();
            }
            catch (SQLException e2){
                System.out.println("Cerramos: " + e2.toString());
            }
        }       
        
        return sobreCosto;
    }

    public ReporteCombustibleResponse reporteCombustible(ReporteCombustibleRequest reporte) {
        ReporteCombustibleResponse reporteCombustibleResponse = new ReporteCombustibleResponse();
        
        try{
            conexion.abrirConexion();
            reporteDAO.setConexion(conexion);
            reporteCombustibleResponse = reporteDAO.reporteCombustible(reporte);
            conexion.cerrarConexion();
        }   
        catch (SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e){
            System.out.println("Error en la base de datos reporte Hora Extra" + e.toString());
        }
        finally{
            try{
                conexion.cerrarConexion();
            }
            catch (SQLException e2){
                System.out.println("Cerramos: " + e2.toString());
            }
        } 
        
        return reporteCombustibleResponse;
    }

    public ReporteIncidenciaResponse reporteIncidencia(ReporteIncidenciaRequest reporte) {
        
        ReporteIncidenciaResponse reporteIncidenciaResponse = new ReporteIncidenciaResponse();
        
        try{
            conexion.abrirConexion();
            reporteDAO.setConexion(conexion);
            reporteIncidenciaResponse = reporteDAO.reporteIncidencia(reporte);
            conexion.cerrarConexion();
        }   
        catch (SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e){
            System.out.println("Error en la base de datos reporte Hora Extra" + e.toString());
        }
        finally{
            try{
                conexion.cerrarConexion();
            }
            catch (SQLException e2){
                System.out.println("Cerramos: " + e2.toString());
            }
        } 
        
        return reporteIncidenciaResponse;
        
    }
    
}
